Hey all! Still cruising with 1.11 until I can get my reborn server functioning......
With a bit of fiddling and help from PurpleElephant and Splatterguts, my mefy's maplist is working! Thanks lads for recommendations.
Now, when I use the MapInfoMod in conjunction with Mefy's, I get a little hiccup.
I changed the mapinfo mod entry to reference "sv_extmaplist" instead of "sv_maplist", which works all fine.
Now, to build extra lists, mefy uses the "&" and "sv_extmaplist2.....etc" as in the below:
set sv_extmaplist "obj/obj_team1 obj/parabot_obj_ste-mere-eglise dm/mohdm1 &" set sv_extmaplist1 "obj/The_Lost_Village dm/mohdm7 &" set sv_extmaplist2 "obj/navarone dm/mohdm1 mohdm3 obj/obj_team4 &"
etc. etc....
Problem is, that with the Mapinfo mod, the "&" shows up as a "map" name in the list when it gets to the end of the line. So the output onscreen becomes "Nextmap is: &"
Can I write in some code into the mapinfo.scr further below that says something like "if an "&" appears, then ignore/goto next line"? or somesuch?
and do I need to also reference "sv_extmaplist1"; "sv_extmaplist2" etc somewhere in the mapinfo.scr?
Many thanks to you clever peoples.
Cheers,
Shane.
------------------------------------------------------------------------------------------- Here is my map rotation list:
Code:
//*******************************************
//************* Maprotatin / Map ************
// Map Rotation List
set g_extgametype_mohdm1 tdm
set g_extgametype_mohdm2 tdm
set g_extgametype_mohdm3 tdm
set g_extgametype_mohdm4 tdm
set g_extgametype_mohdm5 tdm
set g_extgametype_mohdm6 tdm
set g_extgametype_mohdm7 tdm
set g_extgametype_obj_team1 obj
set g_extgametype_obj_team2 obj
set g_extgametype_obj_team3 obj
set g_extgametype_obj_team4 obj
set g_extgametype_parabot_obj_ste-mere-eglise obj
set g_extgametype_obj_merville obj
set g_extgametype_obj_stanalie obj
set g_extgametype_obj_canal obj
set g_extgametype_vsuk-abbeybeta obj
set g_extgametype_bastogne obj
set g_extgametype_parabot_bobobjaa01 obj
set g_extgametype_parabot_bobobjaa02 obj
set g_extgametype_ChocolateFactory obj
set g_extgametype_The_Lost_Village obj
set g_extgametype_bob_carentan obj
set g_extgametype_navarone obj
// map info mod
seta mapinfo 1
seta mapinfo_mapname 1
seta mapinfo_custommapwarning 0
seta mapinfo_customwarning_string1 "Next map is a custom map"
seta mapinfo_customwarning_string2 "If you do not have it server will kick you."
set sv_extmaplist "obj/obj_team1 obj/parabot_obj_ste-mere-eglise dm/mohdm1 obj/obj_team2 dm/mohdm2 obj/obj_team3 obj/obj_team4 obj/obj_canal obj/obj_merville &"
set sv_extmaplist1 "obj/The_Lost_Village obj/bob_carentan obj/obj_stanalie obj/vsuk-abbeybeta obj/bastogne obj/parabot_bobobjaa01 obj/navarone obj/parabot_bobobjaa02"
//starting map
map "obj/obj_team1"
Try this one, it should cater for most if not all of mefy extmaplists
Note: You will need a copy of the global/strings.scr file, you can find it in other mods or search for it, elgbot for instance or ubermod
// original by Giffe, modified and extended by www.scapp.net// array word handling by Elgan//// Uses Cvars:// mapinfo 1// mapinfo_mapname 1// mapinfo_custommapwarning 1// mapinfo_customwarning_string1 "Next map is a custom map"// mapinfo_customwarning_string2 "If you do not have it server will kick you."//// The mapnames are read from mapnames.txt file located in /main/settings foldermain://make sure not running twiceif(level.run_mapinfo)endlevel.run_mapinfo =1println("Mapinfo mod is called.")level.mapnames1=waitexec(settings/mapnames.txt::mapnames1)level.mapnames2=waitexec(settings/mapnames.txt::mapnames2)level.mapnames3=waitexec(settings/mapnames.txt::mapnames3)level.mapnames4=waitexec(settings/mapnames.txt::mapnames4)thread nextmap_message
endnextmap_message:if(int(getcvar("mapinfo"))!=1)println("Mapinfo mod is not enabled")while(1){if(int(getcvar("mapinfo"))==1){if($player !=NULL){/// If the cvar is set, it means mefy mod gamelist, else use normalif(getcvar(sv_extmaplist)!=""){println"Using extmaplist"local.words =waitthread get_extmaplist
}else{println"Using maplist"local.maplist =getcvar"sv_maplist"local.words =waitthread split_line local.maplist
}level.thismap =getcvar"mapname"for(local.i =1;local.i <=local.words[2];local.i++){local.next_map_should_be =local.words[1][local.i +1]if(local.words[1][local.i]==level.thismap){local.i++level.nextmap =local.words[1][local.i]if(level.nextmap ==NIL||level.nextmap ==""&&local.nextmap ==local.next_map_should_be){level.nextmap =local.words[1][1]}waitthread get_ifcustom level.nextmap
}}if(int(getcvar("mapinfo_mapname"))==1){local.mapname_nat=waitthread getmapname level.thismap
if(local.mapname_nat==NIL)local.mapname_nat=level.thismap
local.thismap="This Map is: "+local.mapname_nat
local.mapname_nat=waitthread getmapname level.nextmap
if(local.mapname_nat==NIL)local.mapname_nat=level.nextmap
local.nextmap="Next Map is: "+local.mapname_nat
}else{local.thismap="This Map is: "+level.thismap
local.nextmap="Next Map is: "+level.nextmap
}//println local.thismap//println local.nextmaphuddraw_alpha2320huddraw_alpha2330if(local.nextmap &&local.thismap){if(local.thismap.size>local.nextmap.size)local.draw_x =local.thismap.size
elselocal.draw_x =local.nextmap.size
local.draw_x =-6*local.draw_x
huddraw_align230"right""top"huddraw_alpha2300huddraw_virtualsize2300huddraw_rect230local.draw_x 20000huddraw_color2300.80.91huddraw_font230"verdana-12"huddraw_string230local.thismap
huddraw_align231"right""top"huddraw_alpha2310huddraw_virtualsize2310huddraw_rect231local.draw_x 21500huddraw_color2310.80.91huddraw_font231"verdana-12"huddraw_string231local.nextmap
//******** display a fade-in******for(local.i2 =0;local.i2 <=.5;local.i2 +=.06){huddraw_alpha230local.i2
waitframe;waitframe}wait1//******** display a fade-in******for(local.i2 =0;local.i2 <=1;local.i2 +=.06){huddraw_alpha231local.i2
waitframe;waitframe}wait1if(int(getcvar("mapinfo_custommapwarning"))==1){if(level.iscustommap==1){local.msg1=getcvar("mapinfo_customwarning_string1")if(local.msg1==NIL)local.msg1="Next map is a custom map."local.msg2=getcvar("mapinfo_customwarning_string2")if(local.msg2==NIL)local.msg2="If you do not have it server will kick you."if(local.msg1.size>local.msg2.size)local.draw_x =local.msg1.size
elselocal.draw_x =local.msg2.size
local.draw_x =-6*local.draw_x
huddraw_align232"right""top"huddraw_alpha2321huddraw_virtualsize2320huddraw_rect232local.draw_x 23000huddraw_color232100huddraw_font232"verdana-12"huddraw_string232local.msg1
huddraw_align233"right""top"huddraw_alpha2331huddraw_virtualsize2330huddraw_rect233local.draw_x 22400huddraw_color233100huddraw_font233"verdana-12"huddraw_string233local.msg2
//******** display a fade-in//for(local.i3 = 0; local.i3 <= .7; local.i3 += .1)//{// huddraw_alpha 232 local.i3// huddraw_alpha 233 local.i3// waitframe//}wait1}}wait30}}}wait5}end////////////////////////////////////////////////////////////////////getmapnamelocal.name:if(local.name !=NIL&&local.name !=""){if(level.mapnames1.size >0){for(local.i=1;local.i<=level.mapnames1.size;local.i++){if(local.name==level.mapnames1[local.i][1]){local.name=level.mapnames1[local.i][2]endlocal.name
}}}if(level.mapnames2.size >0){for(local.i=1;local.i<=level.mapnames2.size;local.i++){if(local.name==level.mapnames2[local.i][1]){local.name=level.mapnames2[local.i][2]endlocal.name
}}}if(level.mapnames3.size >0){for(local.i=1;local.i<=level.mapnames3.size;local.i++){if(local.name==level.mapnames3[local.i][1]){local.name=level.mapnames3[local.i][2]endlocal.name
}}}if(level.mapnames4.size >0){for(local.i=1;local.i<=level.mapnames4.size;local.i++){if(local.name==level.mapnames4[local.i][1]){local.name=level.mapnames4[local.i][2]endlocal.name
}}}}endlocal.name
////////////////////////////////////////////////////////////////////split_linelocal.info:local.wordcount =1if(local.info[0]==" "){local.spacer ="_"local.start =1}elseif(local.info[0]==" "||local.info[0]==""){local.spacer =" "for(local.i =0;local.i <=local.info.size;local.i++){if(local.info[local.i]!=" "&&local.info[local.i]!=""){local.start =local.i
break}}}else{local.spacer =" "local.start =0}for(local.i=local.start;local.i<=local.info.size -1;local.i++){if(local.info[local.i]!=local.spacer &&local.info[local.i]!="`"){if(local.words[local.wordcount]==NIL){local.words[local.wordcount]=""}local.words[local.wordcount]+=local.info[local.i]}else{if(local.spacer =="_"&&local.info[local.i +1]=="`"){local.words[local.wordcount]+=local.info[local.i]}elseif(local.spacer =="_"&&local.info[local.i ]!="`"){local.wordcount++}elseif(local.spacer ==" "&&local.info[local.i ]==" "){if(local.info[local.i +1]!=NIL){if(local.info[local.i +1]!=" "){local.wordcount++}}}}}end(local.words::local.wordcount )////////////////////////////////////////////////////////////////////////////////////get_ifcustomlocal.map:local.stock ="dm/mohdm1"::"dm/mohdm2"::"dm/mohdm3"::"dm/mohdm4"::"dm/mohdm5"::"dm/mohdm6"::"dm/mohdm7"::"obj/obj_team1"::"obj/obj_team2"::"obj/obj_team3"::"obj/obj_team4"::"obj/mp_palermo_obj"::"lib/mp_anzio_lib"::"lib/mp_tunisia_lib"::"obj/mp_castello_obj"::"lib/mp_bizerteharbor_lib"::"obj/mp_montecassino_tow"::"obj/mp_bologna_obj"::"lib/mp_ship_lib"::"dm/mp_bizerte_dm"::"obj/mp_kasserine_tow"::"dm/MP_Bahnhof_DM"::"dm/MP_Verschneit_DM"::"obj/mp_montebattaglia_tow"::"dm/MP_Brest_DM"::"dm/MP_Unterseite_DM"::"dm/MP_Holland_DM"::"dm/MP_Stadt_DM"::"dm/MP_Gewitter_DM"::"dm/MP_Bazaar_DM"::"obj/MP_Druckkammern_TOW"::"obj/MP_Flughafen_TOW"::"obj/MP_Ardennes_TOW"::"obj/MP_Berlin_TOW "for(local.i =1;local.i <=local.stock.size;local.i++){if(local.stock[local.i]==local.map ){level.iscustommap =0end}}if(local.map[1]== m ||local.map[1]== t ||local.map[1]== e){level.iscustommap =0end}level.iscustommap =1endget_extmaplist:local.cvar = sv_extmaplist
local.num_list =0local.map_array[0]=NILwhile(local.done !=1){local.maplist =getcvar(local.cvar)if(local.maplist !=NIL){if(local.maplist[local.maplist.size -1]!="&"){local.maplist =waitthread clean_maplist local.maplist
local.words =waitthread split_line local.maplist
for(local.i =1;local.i <=local.words[2];local.i++){if((waitexec global/strings.scr::instr "$map"local.words[1][local.i])!=NIL){local.words[1][local.i]=waitthread convert_maptargetname local.words[1][local.i]}local.map_array[local.map_array.size +1]=local.words[1][local.i]}local.done =1}else{local.maplist =waitthread clean_maplist local.maplist
local.words =waitthread split_line local.maplist
for(local.i =1;local.i <=local.words[2];local.i++){if((waitexec global/strings.scr::instr "$map"local.words[1][local.i])!=NIL){local.words[1][local.i]=waitthread convert_maptargetname local.words[1][local.i]}local.map_array[local.map_array.size +1]=local.words[1][local.i]}local.num_list++local.cvar =("sv_extmaplist"+local.num_list)}waitframe}}/// Combine it to be the same as beforelocal.array[0]="array of words"local.array[1]=local.map_array
local.array[2]=local.map_array.size
endlocal.array
convert_maptargetnamelocal.map:local.delim ="$"local.map =waitexec global/strings.scr::replacelocal.map local.delim ""local.cvar =getcvar(local.map)local.array =waitthread split_line local.cvar
local.map =local.array[1][1]endlocal.map
clean_maplistlocal.maplist:/// cleans it up, removes the "&" and any other mefy ext gamelist variables like ",ffa" or ",ftobj"local.delim_array =makeArray"&"",obj"",ffa"",tdm"",rbm"",ft"",ftobj"",ctf"",ftctf"",dem"",ftdem"",tow"",fttow"endArrayfor(local.i =1;local.i <local.delim_array.size;local.i++){local.delim =local.delim_array[local.i][1]local.maplist =waitexec global/strings.scr::replacelocal.maplist local.delim ""}endlocal.maplist
PS One problem i cant seem to get around is if you have the same map more then once in the maplist, because maplist mod doesnt no which map in the list your on, could be the first or the last etc. Ill try again later
Last edited by Purple Elephant1au; May 4th, 2015 at 05:29 AM.
Anyone else has a problem getting the custom mapwarning to show?
The custom mapwarning cvar is properly set in server.cfg and Ive tried changing the huddraw numbers, printing locations etc.
But still doesn't work for me. Everything else about the mod works nicely.
Funny thing is, I remember it worked a few years ago. Maybe something changed in the meantime with the Reborn patch?
I'm using the updated strings.